// Registry.h
// This function will register a component.
HRESULT RegisterServer(const char* szModuleName, REFCLSID clsid, const char* szFriendlyName, const char* szVerIndProgID, const char* szProgID, const char* szThreadingModel);

// This function will unregister a component.
HRESULT UnregisterServer(REFCLSID clsid, const char* szVerIndProgID, const char* szProgID);

struct REG_DATA
{
    const char* pszKey;
    const char* pszValue;
    const char* pszData;
};

// These functions will register and unregister a component based on data from a global array.
HRESULT UnregisterServerEx(const REG_DATA regData[]);
HRESULT RegisterServerEx(const REG_DATA regData[], const char* szModuleName);